package br.com.saeng2D.util;

//Representacao de uma Area
public class R2D {
	public int x;
	public int y;
	public int altura;
	public int largura;

	public R2D() {
		this(0, 0, 0, 0);
	}

	public R2D(int x, int y, int largura, int altura) {
		this.x = x;
		this.y = y;
		this.largura = largura;
		this.altura = altura;
	}

	public boolean ehIgual(R2D r2d) {
		return x == r2d.x && y == r2d.y && largura == r2d.largura && altura == r2d.altura;
	}
		
	public boolean contem(int x, int y) {
		return (x >= this.x && x < this.x + this.largura)
				&& (y >= this.y && y < this.y + this.altura);
	}

	public boolean intersecao(int x, int y, int w, int a) {
		return (x + w > this.x && x < this.x + this.largura)
				&& (y + a > this.y && y < this.y + this.altura);
	}

	public boolean contem(R2D r2d) {
		return (r2d.x >= x && r2d.x + r2d.largura <= x + largura)
				&& (r2d.y >= y && r2d.y + r2d.altura <= y + altura);
	}

	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}

	public int getLargura() {
		return largura;
	}

	public void setLargura(int largura) {
		this.largura = largura;
	}

	public int getAltura() {
		return altura;
	}

	public void setAltura(int altura) {
		this.altura = altura;
	}

	public String toString() {
		return "R2D[x=" + x + ", y=" + y + ", largura=" + largura + ", altura="
				+ altura + "]";
	}
}